The present invention relates to a program control method for controlling program execution in distributed object processings.
In a conventional distributed object system, if a client side processing apparatus is to receive a predetermined service (a function realized by executing a program or object) from a server side processing apparatus, the client side processing apparatus inquires the server side processing apparatus that supplies a naming service about whether or not it can solve the object name and receives a reference to the object (information used to identify the object uniquely in a distributed object environment) therefrom. The client side processing apparatus then requests a specific server side processing apparatus denoted by the received reference for supply of the above service and receives the processing result from the server side processing apparatus. The server side processing apparatus obtains the processing result with use of the object method it has called up.
Recently, the conventional distributed object system has also come to obtain a reference to such an object via a factory (object allocation processing part). In other words, the client side processing apparatus obtains a reference to the factory from the server side processing apparatus that supplies the naming service, and requests the server side processing apparatus denoted by the factory reference for object allocation to obtain the reference to the object and requests the server side processing apparatus denoted by the object reference for method calling to receive the processing result.
Such a naming service in a distributed object environment as described above, as well as a technique for improving the error resistance of a distributed processing system and enabling the efficient scalability therein are disclosed in, for example, JP-A No.529862/2002.
In the above conventional distributed object system, references are supplied without taking none of the load state of the server side processing apparatus and load state changes with time into consideration. Therefore, if a load state change occurs between reference obtaining and processing requesting processes, the load is often maldistributed at the server side processing apparatus. This has been a problem.
In other words, if a load state change occurs between when a client side processing apparatus obtains a reference to a factory from a server side processing apparatus that supplies a naming service and when the client side processing apparatus requests the server side processing apparatus denoted by the factory reference for object allocation, the processing load is maldistributed in the server side processing apparatus that processes the factory. If a load state change occurs between when the client side processing apparatus obtains a reference to an object after the object is allocated and when the client side processing apparatus requests the server side processing apparatus denoted by the object reference for method calling, the processing load comes to be maldistributed in the server side processing apparatus that calls the method. Because of the maldistributed processing load in the server side processing apparatus that processes the factory and calls the method as described above, the performance of the whole distributed object system comes to be degraded. This has been another problem.